工作中经常需要导入或者导出较大的sql文件。导出时一般没问题,但在导入到其它Mysql库中,可能会出现
Packet for query is too large (1706 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.
或者程序(如python里面executemany)在插入大量数据时出现
MySQL server has gone away
这些错误都可能是Mysql的mysql max_allowed_packet默认值太小。修改该值一般游两种方式。
方式一:sql语句修改
1、首先登陆mysql查看当前该值的大小。
show variables like ‘%max_allowed_packet%’
2、修改其大小为1G
set global max_allowed_packet = 102410241024
注意: 这种修改方式修改后,需要重新登陆Mysql查看,才能看到修改后的值,并且,这种方式修改的mysql max_allowed_packet,在Mysql重启后,可能失效。
方式二:my.ini修改
1、在my.ini 或 my.cnf 文件中添加如下语句。比如:改为1G。 如下图所示。修改完成后,需要重启mysql。
注意:这种方式 max_allowed_packet 一定是添加在【mysqld】才能生效。